home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / CLASSSRC.PAK / DIAGINIT.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  2KB  |  83 lines

  1. //----------------------------------------------------------------------------
  2. // Borland WinSys Library
  3. // Copyright (c) 1993, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   5.4  $
  6. //
  7. // Implementation of diagnostic initialization functions. Settings are stored
  8. // in a profile (name is provided) in a section named "Diagnostics". Profile
  9. // format in an ascii .ini file looks like:
  10. //
  11. //  [Diagnostics]
  12. //  Enabled = <enabled>
  13. //  <groupname1> = <enabled> <level>
  14. //  <groupname2> = <enabled> <level>
  15. //    ...
  16. //  <groupnameN> = <enabled> <level>
  17. //
  18. // where:
  19. //  <enabled> = 0|1
  20. //  <level>   = 0..255
  21. //
  22. //----------------------------------------------------------------------------
  23. #include <winsys/pch.h>
  24. #if !defined(WINSYS_DEFS_H)
  25. # include <winsys/defs.h>
  26. #endif
  27. #if !defined(WINSYS_PROFILE_H)
  28. # include <winsys/profile.h>
  29. #endif
  30. #include <string.h>
  31. #include <stdlib.h>
  32. #include <tchar.h>
  33.  
  34. #if defined(BI_NAMESPACE)
  35. namespace ClassLib {
  36. #endif
  37.  
  38. static const _TCHAR Section[] = "Diagnostics";
  39. static int DiagsAreEnabled = 0;
  40.  
  41. //
  42. // Retrieve a diag's enabled flag from a private .ini file. Master enable
  43. // switch 'Enabled' overrides individual group settings. .ini file is searched
  44. // for in standard profile places
  45. //
  46. uint8 _WSYSFUNC
  47. GetDiagEnabled(_TCHAR* filename, _TCHAR* name, uint8 defEnabled)
  48. {
  49.   TProfile diagProfile(Section, filename);
  50.  
  51.   _TCHAR buf[32];
  52.   static bool initialCheck = false;
  53.   if (!initialCheck) {
  54.     initialCheck = true;
  55.     diagProfile.GetString("Enabled", buf, sizeof buf, "0");
  56.     DiagsAreEnabled = _ttoi(buf);
  57.   }
  58.   if (!DiagsAreEnabled)
  59.     return 0;
  60.  
  61.   diagProfile.GetString(name, buf, sizeof buf, "");
  62.   _TCHAR* enabled = _tcstok(buf, " ");
  63.   return enabled ? uint16(_ttoi(enabled)) : defEnabled;
  64. }
  65.  
  66. //
  67. // Retrieve a diag's level setting from a private .ini file.
  68. //
  69. uint8 _WSYSFUNC
  70. GetDiagLevel(_TCHAR* filename, _TCHAR* name, uint8 defLevel)
  71. {
  72.   _TCHAR buf[32];
  73.   TProfile(Section, filename).GetString(name, buf, sizeof buf, "");
  74.  
  75.   _tcstok(buf, " ");
  76.   _TCHAR* level = _tcstok(0, " ");
  77.   return level ? uint16(_ttoi(level)) : defLevel;
  78. }
  79.  
  80. #if defined(BI_NAMESPACE)
  81. } // namespace ClassLib
  82. #endif
  83.